
var FindAllUrl = "/FindAllAndSearchCardServlet";

var UpdateStatusUrl = "/UpdateCardStatusServlet";





$(function () {

    // 初始化分页列表
    cardManage.initList();

})



var cardManage = {};


cardManage.initList = function () {
    $("#cardList").bootstrapTable({
        url: FindAllUrl, //请求路径 **********************************
        method: 'post', //请求方式(*)
        contentType: 'application/x-www-form-urlencoded', //使用from表单方式提交(*)
        toolbar: '#toolbar', //工具按钮的容器
        striped: true, //是否启用隔行变色
        cache: false, //使用是否缓存 默认为true,所以一般情况下需要设置一下为false (*)
        pagination: true, //是否显示分页(*)
        sortable: false, //使用启用排序
        sortOrder: 'desc', //排序方式
        queryParams: cardManage.queryParams, //传递参数(*)  *************************************************
        queryParamsType: '',
        sidePagination: 'server', // 分页方式有两种 1.client 客户端分页  2.server分页
        pageNumber: 1, //初始化页数为第一页  显示第几页
        pageSize: 5, //默认每页加载行数
        pageList: [10, 25, 50, 100], //每页可选择记录数
        strictSearch: true,
        showColumns: false, // 是否显示所有的列
        showRefresh: false, // 是否显示刷新按钮
        minimumCountColumns: 2, // 最少允许的列数
        clickToSelect: true, // 是否启用点击选中行
        uniqueId: "id", // 每一行的唯一标识，一般为主键列
        showToggle: false, // 是否显示详细视图和列表视图的切换按钮
        cardView: false, // 是否显示详细视图
        detailView: false, // 是否显示父子表
        smartDisplay: false,

        responseHandler: function (result) {   // 通过网络请求得到   数据进行解析初始化*******************************
            console.log(result.data);
            if (result != null) {
                return {
                    'total': result.data.count, //总条数*************************************
                    'rows': result.data.list//所有的数据**********************************
                };
            }
            return {
                'total': 0, //总条数
                'rows': [] //所有的数据
            }
        },
        //列表显示
        columns: [{
            field: 'cardId',
            title: "会员卡号"
        }, {
            field: 'userName',
            title: "会员姓名"
        }, {
            field: 'userId',
            title: "员工Id",

        }, {
            field: 'name',
            title: "会员等级"
        }, {
            field: 'amount',
            title: "卡余额"
        }, {
            field: 'credit',
            title: "会员积分"
        }, {
            field: 'status',
            title: "状态",
            formatter: function (value) {

                switch (value) {
                    case 0 :
                        return '<button class="btn-xs btn-info">正常</button>';
                    case 1 :
                        return '<button class="btn-xs btn-danger">挂失</button>';
                }

            }
        }, {
            field: 'operation',
            events: buttonOperateEvent, // 设置每一行按钮的 点击事件*********************************
            title: '操作',
            formatter: function (value, row, index) {  // 为当前行增加 按钮*******************
                return cardManage.buttonOption(value, row, index);
            }
        }
        ]
    });
}

/**
 * 获取具体的参数
 * @param params
 * @returns {{pageNumber: *, searchName: *, pageSize: *, searchcardId: *}}
 */
cardManage.queryParams = function (params) {
    return {
        "pageNumber": params.pageNumber, //当前页数
        "pageSize": params.pageSize, //每页条数
        "searchId": $("#searchId").val(),
        "searchName": $("#searchName").val()
    }
}

/**
 * 按钮的点击事件
 * @type {{"click .delcard": Window.buttonOperateEvent.click .delcard, "click .updatecard": Window.buttonOperateEvent.click .updatecard}}
 */
window.buttonOperateEvent = {
    // 更新 员工 对应的 更新按钮的updatecard
    'click .updatecard': function (e, value, row, index) {
        //row 这一行的数据
        // alert("修改操作")
        updatecard(row);
    },
    // 删除员工 更新按钮的delcard
    'click .delcard': function (e, value, row, index) {
        cardManage.del(row);
    }
}
/**
 * 为每一行添加按钮
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
cardManage.buttonOption = function (value, row, index) {
    var returnButton = [];
    returnButton.push('<button class="btn btn-info updatecard">充值</button>');
    returnButton.push('<button class="btn btn-danger delcard">挂失/正常</button>');
    return returnButton.join('');
}

/**
 * 刷新列表
 */
cardManage.search = function () {
    //bootstrapTable 刷新
    $("#cardList").bootstrapTable('refresh');
}

cardManage.getNow = function (startTime) {
    //结束时间
    var date2 = new Date();
    //时间差的毫秒数
    var date3 = date2.getTime() - new Date(startTime).getTime();
    //计算出相差天数
    var days = Math.floor(date3 / (24 * 3600 * 1000));
    return parseInt(days / 365);
}

cardManage.del = function (row) {
    /**
     * 1.一般情况下删除要加confirm
     */
    Modal.confirm({
        msg: "确认当前操作"  // 配置 确认窗口 ，也必须在html 设置窗口布局
    }).on(function (e) {
        if (e) {// true 代表确认删除
            // 在弹框确定
            /**
             * 2 调用ajax 请求删除员工
             */
            $.ajax({
                url: UpdateStatusUrl,// 自己完成后台
                type: 'post',
                data: {
                    "cardId": row.cardId,
                    status:row.status
                },
                dataType: 'json',
                success: function (result) {
                    if (result.status > 0) {
                        toastr['success']("操作成功");
                        $("#cardList").bootstrapTable('refresh');
                    } else {
                        toastr['error']("操作失败");
                    }
                }
            })

        }
    })
}
